In some scenarios it is desirable to port operating system (“OS”)-level applications for execution in a firmware-provided pre-boot execution environment, such as that provided by a Unified Extensible Firmware Interface (“UEFI”) Specification-compliant firmware. When executing an application in a pre-boot execution environment, it is also desirable for the application to be able to access files stored in a firmware volume on a firmware device rather than from a mass storage device. This enables convenient storage of the files within the same firmware device that stores the pre-boot application and removes the dependency of the application and the firmware on files stored in mass storage devices.
The American National Standards Institute (“ANSI”) standard for the C programming language defines a standard set of functions for performing file-related input/output (“I/O”) operations (e.g. “fopen,” “fread,” “fclose,” etc.). This set of functions is commonly utilized by OS-level applications for accessing data on mass storage media, such as hard disk drives, Universal Serial Bus (“USB”) keys, and others. This set of functions does not, however, support the utilization of files stored within a firmware volume. As a result, porting an OS-level application for execution in a pre-boot execution environment can require rewriting program code in the application that utilizes standard I/O functions to access files on mass storage devices to instead access the files from a firmware volume. Porting OS-level applications that utilize this set of functions for execution in a pre-boot execution environment can therefore be difficult and time consuming.
It is with respect to these and other considerations that the disclosure made herein is presented.